package com.shamar.blog.dao;

import com.shamar.blog.entity.BlogContent;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BlogContentDao {
    /**
     * 根据主键删除博文
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入单个博文记录
     * @param blogContent
     * @return
     */
    int insert(BlogContent blogContent);

    /**
     * 插入单个博文记录的部分
     * @param blogContent
     * @return
     */
    int insertSelective(BlogContent blogContent);

    /**
     * 根据主键查询博文
     * @param id
     * @return
     */
    BlogContent selectByPrimaryKey(Integer id);

    /**
     * 根据传入的记录部分更新数据库
     * @param blogContent
     * @return
     */
    int updateByPrimaryKeySelective(BlogContent blogContent);

    int updateByPrimaryKey(BlogContent blogContent);

    /**
     * 根据传入的条件查找博文
     * @param blogContentCondition
     * @param rowIndex
     * @param pageSize
     * @return
     */
    List<BlogContent> selectByBlogContentCondition(@Param("blogContentCondition") BlogContent blogContentCondition, @Param("rowIndex") int rowIndex, @Param("pageSize") int pageSize);

    /**
     * 根据参数查询博文 参数包括 博文添加,排序的字段,排序的方式,limit 0,10
     * @param blogContentCondition
     * @param order_param
     * @param order_way
     * @param rowIndex
     * @param pageSize
     * @return
     */
    List<BlogContent> selectByBlogContentConditionPagination(@Param("blogContentCondition") BlogContent blogContentCondition, @Param("order_param") String order_param,@Param("order_way") String order_way,@Param("rowIndex") int rowIndex, @Param("pageSize") int pageSize);

    /**
     * 获取所有博文
     * @return
     */
    List<BlogContent> getAllBlogContent();

    /**
     * 根据传入的条件返回博文记录数
     * 若传入的条件为空,则返回全部记录数
     * @param blogContentCondition
     * @return
     */
    int queryContentCount(@Param("blogContentCondition") BlogContent blogContentCondition);
}